<?php
/***
 * 描述：客户管理后台基类模块
 * @category		
 * @package			Lib		
 * @subpackage	Action.Office
 * @author				wanght <whtaok@gmail.com>
 * @since				2013-7-6
 * @version			$Id: AdminAction.class.php 6 2013-10-22 08:26:07Z whtaok@gmail.com $
 */
define('IS_ADMIN', TRUE);
class AdminAction extends AppAction {
	protected $curr_user_id;
	protected $curr_shop_id;

	/**
	 * 初始化树状菜单
	 * @access		protected
	 * @author	wanght<whtaok@gmail.com>
	 * @since		2013-3-3
	 */
	protected function initMenuTree($menu_type) {
		//1.根据菜单类型取得菜单列表
		$mod	=	new ShopUserMenuModel();
		$mod->validForWhere('2');
		$menu	= $mod->defaultOrder()->select();
		//2.生成菜单树型数组(common.php->list_to_tree)
		$menu_tree = list_to_tree($menu);
		//3.文件缓存数组
		F('menu_tree'.$menu_type,$menu_tree);
		//4.返回树状数组
		return $menu_tree;
	}

	/**
	 * 提取头部菜单数组
	 * @access		protected
	 * @author		wanght<whtaok@gmail.com>
	 * @since		2013-3-3
	 */
	protected function getMenuTop($menu_type){
		//提取树型菜单数组
		//$menu_tree = F('menu_tree'.$menu_type);
		//if(!$menu_tree){
			$menu_tree = $this->initMenuTree($menu_type);
		//}
		
		//提取头部菜单数组
		$menu_top = array();
		foreach ($menu_tree as $item) {
			$menu_top[] = array('menu_id'=>$item['id'],'menu_title'=>$item['title']);
		}
		return $menu_top;
	}

	/**
	 * 提取子菜单数组
	 * @access		protected
	 * @author		wanght<whtaok@gmail.com>
	 * @since		2013-3-3
	 */
	protected function getMenuSub($menu_type,$menu_id){
		//提取树型菜单数组
		$menu_tree = F('menu_tree'.$menu_type);
		if(!$menu_tree){
			$menu_tree = $this->initMenuTree($menu_type);
		}
		//提取子菜单数组
		$menu_sub = $menu_tree[$menu_id]['children'];
		
		foreach ($menu_sub as $key=>$value){
			if(isset($value['children'])){
				foreach($value['children'] as $c_key=>$c_value){
					if ($c_value['action_params']){
						$action_params = explode('&', $c_value['action_params']);
						foreach ($action_params as $name_value) {
							$data_arg = explode('=', $name_value);
							$data_args[$data_arg[0]] = $data_arg[1];
						}
					}
					//$menu_sub[$key]['children'][$c_key]['url']=U($c_value['group_name'].'/'.$c_value['module_name'].'/'.$c_value['action_name'], $data_args);
					$menu_sub[$key]['children'][$c_key]['url']=$c_value['content'];
				}
			}
		}
		//F('menu_tree_sub',$menu_sub);
		return $menu_sub;
	}

	/**
	 * 描述：初始化模块
	 * @access		protected
	 * @author		wanght<whtaok@gmail.com>
	 * @since		2013-4-14
	 */
	protected  function _initialize() {
		$this->checkAuth();
	}
	/**
	 * 描述：检查是否登录成功，及操作权限
	 * @access		public
	 * @author		wanght<whtaok@gmail.com>
	 * @since		2013-4-14
	 */
	protected function checkAuth() {
		if (!session(SES_USER_ID)) {
			$this->success('登录超时，请重新登录。',U('Index/Passport/index'));
			exit;
		}else{
			$this->curr_user_id = session(SES_USER_ID);
			$this->curr_shop_id = session(SES_SHOP_ID);
		}
	}
	
	/**
	 * 描述：上传配置文件
	 * @access		public
	 * @author		wanght<whtaok@gmail.com>
	 * @since		2013-4-23
	 */
	protected function doUpload($savapath,$myconfig) {
		$config = array(
				'maxSize'           =>  1024*1000*20,    // 上传文件的最大值为2M
				'supportMulti'      =>  true,    		// 是否支持多文件上传
				'allowExts'         =>  array('gif', 'jpg', 'jpeg', 'png'),    // 允许上传的文件后缀 留空不作后缀检查
				'allowTypes'        =>  array(),    // 允许上传的文件类型 留空不做检查
				'thumb'             =>  true,    // 使用对上传图片进行缩略图处理
				'imageClassPath'    =>  'ORG.Util.Image',    // 图库类包路径
				'thumbMaxWidth'     =>  '240',// 缩略图最大宽度
				'thumbMaxHeight'    =>  '160',// 缩略图最大高度
				'thumbPrefix'       =>  '',// 缩略图前缀
				'thumbSuffix'       =>  '',
				'thumbPath'         =>  '',// 缩略图保存路径
				'thumbFile'         =>  '',// 缩略图文件名
				'thumbExt'          =>  'png',// 缩略图扩展名
				'thumbRemoveOrigin' =>  false,// 是否移除原图
				'zipImages'         =>  false,// 压缩图片文件上传
				'autoSub'           =>  false,// 启用子目录保存文件
				'subType'           =>  'hash',// 子目录创建方式 可以使用hash date custom
				'subDir'            =>  '', // 子目录名称 subType为custom方式后有效
				'dateFormat'        =>  'Ymd',
				'hashLevel'         =>  1, // hash的目录层次
				'autoCheck'         =>  true, // 是否自动检查附件
				'uploadReplace'     =>  false,// 存在同名是否覆盖
				'saveRule'          =>  'uniqid',// 上传文件命名规则
				'hashType'          =>  'md5_file',// 上传文件Hash规则函数名
		);
		if($myconfig){
			$config = array_merge($config,$myconfig);
		}
		import("ORG.Net.UploadFile");
		$upload = new UploadFile($config);
		$upload->upload($savapath);
		return $upload;
	}
}
	

?>